This application is related to the following co-pending applications owned by the same assignee:
METHOD AND APPARATUS FOR GENERATING THREE DIMENSIONAL DRAWING ON A GRAPHICS DISPLAY, 07/618,187; PA1 METHOD AND APPARATUS FOR SHADING SURFACES 0F A THREE DIMENSIONAL DRAWING, 07/617,705; PA1 ENHANCED MULTIDIMENSIONAL DESIGN KEYBOARD, 07/617,830.
In CAD applications, it is important to be able to transform two-dimensional representations of objects into solid representations. The automobile and aircraft industries were two of the first to exploit this function for mechanical assemblies. Examples of general CAD systems are disclosed in U.S. Pat. Nos. 4,962,472; 4,849,913; and 4,912,664. Three basic techniques were developed for transforming two dimensional representations into three dimensional, solid models.
The first basic technique is primitive instancing. In primitive instancing, the modeling system defines a set of primitive, three dimensional solid shapes that are appropriate for the particular application. For example, a primitive object may be a regular pyramid with a user-defined number of faces meeting the apex. Primitive instances are similar to parametized objects, except the objects are solids. A parametized primitive may be thought of as defining a family of parts whose members vary in a few parameters. These family of parts are referred to as group technology.
Primitive instancing is often used for relatively complex objects, such as gears or bolts, that are tedious to define in terms of Boolean combinations of simpler objects. A gear or bolt can be defined in terms of its diameter and number of teeth. In primitive instancing, no provisions are made for combining objects to form a new, higher-level object. Thus, the only way to create a new kind of object is to write the code that defines the new object. This is not a practical approach to object creation in an interactive CAD package.
Sweeping an object along a trajectory path through space defines a new object called a sweep. The simplest kind of a sweep is defined by a two dimensional area swept along a linear path normal to the plane of the area to create a volume. This technique is known as a translational sweep or extrusion. It is one of the most common techniques for representing objects made by extruding metal or plastic through a die with the desired cross-section. In this simple case, each sweep's volume is simply the sweep object's area times the length of the sweep. The problem with this technique is that the user can only specify a single two dimensional representation to use in generating the solid.
The final prior art technique for generating solids is constructive solid geometry. In constructive solid geometry, simple primitives are combined by means of regularized Boolean set operators that are included directly in the representation. An object is stored as a tree with operators at the internal nodes and simple primitives as the leaves. Some nodes represent Boolean operators, whereas others perform translation, rotation and scaling.
To determine physical properties or to display the solid, the properties of the leaves must be combined to obtain the properties of the root. The complexity of this task depends on the representation in which the leaf objects are stored and on whether a full representation of the composite object at the tree's root must actually be produced. This pre-defined approach to defining a solid model is unacceptable in a system whereby a user can dynamically design and modify two dimensional representations and thereafter create three dimensional solid representations.